package ig.ejb.metrica.da.session;

//import ig.ejb.metrica.da.RelacionessubcuentasbalancesLocal;
//import ig.ejb.metrica.da.RelacionessubcuentasbalancesPK;
import ig.ejb.metrica.da.util.RelacionessubcuentasbalancesDTO;
import ig.ejb.metrica.da.util.RelacionmonedassubcuentasDTO;
import javax.ejb.*;

/**
 * This is the bean class for the RelacionesSubCuentasBalanceSBBean enterprise bean.
 * Created 2/08/2006 11:31:40 AM
 * @author jsanchez
 */
public class RelacionesSubCuentasBalanceSBBean implements SessionBean, RelacionesSubCuentasBalanceSBRemoteBusiness, RelacionesSubCuentasBalanceSBLocalBusiness {
    private SessionContext context;
    
    // <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click the + sign on the left to edit the code.">
    // TODO Add code to acquire and use other enterprise resources (DataSource, JMS, enterprise bean, Web services)
    // TODO Add business methods or web service operations
    /**
     * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
     */
    public void setSessionContext(SessionContext aContext) {
        context = aContext;
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbActivate()
     */
    public void ejbActivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbPassivate()
     */
    public void ejbPassivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbRemove()
     */
    public void ejbRemove() {
        
    }
    // </editor-fold>
    
    /**
     * See section 7.10.3 of the EJB 2.0 specification
     * See section 7.11.3 of the EJB 2.1 specification
     */
    public void ejbCreate() {
        // TODO implement ejbCreate if necessary, acquire resources
        // This method has access to the JNDI context so resource aquisition
        // spanning all methods can be performed here such as home interfaces
        // and data sources.
    }
    
    
    
    // Add business logic below. (Right-click in editor and choose
    // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
public Object findByObject(Object ... obj) throws java.lang.Exception {
        //TODO implement findByObject
        if(obj==ig.ejb.metrica.da.util.IComun.NULL || obj.length==0 || obj[0].equals(ig.ejb.metrica.da.util.IComun.ALL)){
//            return this.lookupRelacionessubcuentasbalancesBean().findAll();
        }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Idbalance)){
//            return this.lookupRelacionessubcuentasbalancesBean().findByIdbalance( (Integer) obj[1]);
        }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Idformato)){
//            return this.lookupRelacionessubcuentasbalancesBean().findByIdformato( (Integer) obj[1]);
        }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Subcuenta)){
//            return this.lookupRelacionessubcuentasbalancesBean().findBySubcuenta( (String) obj[1]);
        }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Unidaddecaptura)){
//            return this.lookupRelacionessubcuentasbalancesBean().findByUnidaddecaptura((String) obj[1]);
        }
        return null;
    }

    /**
     *Elimina uno o mas registros dependiendo de los objeto enviado
     */
    public void removeByObject(Object ... obj) throws java.lang.Exception {
        //TODO implement removeByObject
        if(obj==ig.ejb.metrica.da.util.IComun.NULL || obj.length==0){
            throw new Exception("No se eliminaron Objetos:"+this.getClass().getName());
        }else if(obj[0] instanceof String){
            if(obj[0].equals(ig.ejb.metrica.da.util.IComun.PK)){                
//                this.lookupRelacionessubcuentasbalancesBean().findByPrimaryKey((RelacionessubcuentasbalancesPK) obj[1]).remove();
            }else if(obj[0].equals(ig.ejb.metrica.da.util.IComun.FechaCorte)){
                java.util.Collection c=null;
                if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Idbalance)){
//                    c=this.lookupRelacionessubcuentasbalancesBean().findByIdbalance( (Integer) obj[1]);
                }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Idformato)){
//                    c=this.lookupRelacionessubcuentasbalancesBean().findByIdformato( (Integer) obj[1]);
                }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Subcuenta)){
//                    c=this.lookupRelacionessubcuentasbalancesBean().findBySubcuenta( (String) obj[1]);
                }else if(obj[0].equals(ig.ejb.metrica.da.util.IRelacionsubcuentasbalance.Unidaddecaptura)){
//                    c=this.lookupRelacionessubcuentasbalancesBean().findByUnidaddecaptura((String) obj[1]);
                }
                for (Object elem : c) { 
//                    ((RelacionessubcuentasbalancesLocal)elem).remove();
                }
            }
        }else if(obj[0] instanceof java.util.Collection){
            for (Object elem : (java.util.Collection)obj[0]) { 
//                RelacionessubcuentasbalancesPK pk= new RelacionessubcuentasbalancesPK();
//                pk.idbalance=((RelacionessubcuentasbalancesDTO)elem).getIdbalance();
//                pk.idformato=((RelacionessubcuentasbalancesDTO)elem).getIdformato();
//                pk.subcuenta=((RelacionessubcuentasbalancesDTO)elem).getSubcuenta();
//                pk.unidaddecaptura=((RelacionessubcuentasbalancesDTO)elem).getUnidaddecaptura();
//                this.lookupRelacionessubcuentasbalancesBean().findByPrimaryKey(pk).remove();
            }
        }
    }
     /**
      *Crea cualquier objeto enviados
      */           
    public void createNewObject(Object ... obj) throws java.lang.Exception {
        if(obj==ig.ejb.metrica.da.util.IComun.NULL || obj.length==0){
            throw new Exception("No se crearon Objetos:"+this.getClass().getName());
        }else if(obj[0] instanceof java.util.Collection){
        for (Object elem : (java.util.Collection)obj[0]) {
//                this.lookupRelacionessubcuentasbalancesBean().create(
//                        ((RelacionessubcuentasbalancesDTO)elem).getIdformato(),
//                        ((RelacionessubcuentasbalancesDTO)elem).getUnidaddecaptura(),
//                        ((RelacionessubcuentasbalancesDTO)elem).getSubcuenta(),
//                        ((RelacionessubcuentasbalancesDTO)elem).getIdbalance()
//                        );
            }
        }else if(obj[0] instanceof RelacionmonedassubcuentasDTO ){
//            Object elem=obj[0];
//            this.lookupRelacionessubcuentasbalancesBean().create(
//                        ((RelacionessubcuentasbalancesDTO)elem).getIdformato(),
//                        ((RelacionessubcuentasbalancesDTO)elem).getUnidaddecaptura(),
//                        ((RelacionessubcuentasbalancesDTO)elem).getSubcuenta(),
//                        ((RelacionessubcuentasbalancesDTO)elem).getIdbalance()
//                    );
        }
    }

//    private ig.ejb.metrica.da.RelacionessubcuentasbalancesLocalHome lookupRelacionessubcuentasbalancesBean() {
//        try {
//            javax.naming.Context c = new javax.naming.InitialContext();
//            ig.ejb.metrica.da.RelacionessubcuentasbalancesLocalHome rv = (ig.ejb.metrica.da.RelacionessubcuentasbalancesLocalHome) c.lookup("java:comp/env/ejb/RelacionessubcuentasbalancesBean");
//            return rv;
//        }
//        catch(javax.naming.NamingException ne) {
//            java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
//            throw new RuntimeException(ne);
//        }
//    }
    
    
    
}
